#ifndef GESTIONNAIRETEXTURES_H
#define GESTIONNAIRETEXTURES_H

/*
 *  @autheur : LEMOUEL Florian
 *  @date : 30.03.2013
 *  @version 1.0 : création de la classe complète
 */

#include "texture.h"
#include <QList>

/*
 * Classe représentant une face
 * Une face a un ensemble de sommets la constituant.
 * On peut calculer son centre de gravité ainsi que sa normale.
 */

class GestionnaireTextures
{
 //--------------------- Constructeurs et destructeur -------------------
private:
    //Constructeur par défault
    GestionnaireTextures();

    //Destructeur
    ~GestionnaireTextures();
    //----------------------------------------------------------------------
    //--------------------- Méthodes ---------------------------------------
public:
    //On renvoie la texture "nomTexture"
    Texture& getTexture(QString nomTexture);

private:
    //on charge la texture dans le gestionnaire
    int chargerTexture(QString nomTexture);
    //----------------------------------------------------------------------
    //--------------------- Accesseurs -------------------------------------
public:
    //Accesseur permettant de récupérer l'instance du gestionnaire
    static GestionnaireTextures& getInstance();
    //----------------------------------------------------------------------
    //--------------------- Surcharge des opérateurs -----------------------

    //----------------------------------------------------------------------
    //--------------------- Attributs --------------------------------------
private:
    //Unique instance de la classe GestionnaireLumieres
    static GestionnaireTextures* _instance;

    //Liste des textures du gestionnaire
    QList<Texture*> _listeTextures;
    //----------------------------------------------------------------------
};

#endif // GESTIONNAIRETEXTURES_H
